package tests;
import common.Utils;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.*;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Method;
import java.time.Duration;
import java.time.Instant;

import static org.junit.jupiter.api.Assertions.assertEquals;
/**
 * @author 李夏
 * @version 1.0
 */

/**
 * 登录页面相关测试内容
 */

public class LoginPage extends Utils {
    public static String url = "https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6";
    public LoginPage() {
        super(url);
    }


    //检查登录功能---输入正确的用户名和密码成功登录
    public void loginSuc() throws IOException {
        // 读取外部文本文件内容
        String filePath = "path/to/your/file.txt"; // 需要替换为实际的文件路径
        StringBuilder content = new StringBuilder();
        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = reader.readLine()) != null) {
                content.append(line).append(" ");
            }
        } catch (IOException e) {
            e.printStackTrace();
            return;
        }

        // 打开百度页面
        driver.get(url);

        // 定位搜索框并清空
        WebElement searchBox = driver.findElement(By.cssSelector("#kw"));
        searchBox.clear();

        // 将文件内容输入到搜索框
        searchBox.sendKeys(content.toString().trim());

        // 模拟点击搜索按钮（假设搜索按钮的CSS选择器为#su）
        WebElement searchButton = driver.findElement(By.cssSelector("#su"));
        searchButton.click();

        Method method = new Object() {
        }.getClass().getEnclosingMethod();
        String methodName = method.getName();
        getScreenShot(getClass().getName(), methodName);

//        driver.navigate().back();
    }

    /*
    检查登录功能---登录失败--输入错误的用户名和密码
     */
    public void loginFail() throws IOException {
//        //方法一：通过clear保证输入框没有文本
//        driver.findElement(By.cssSelector("#username")).clear();
//        driver.findElement(By.cssSelector("#password")).clear();

        //方法二：通过刷新保证输入框没有文本
        driver.navigate().refresh();
        /**
         *  用户名和密码都为空的情况下提交
         */
        driver.findElement(By.cssSelector("#submit")).click();
        String res1 = driver.findElement(By.cssSelector("#signInForm > div.mb-3 > div")).getText();
        assert res1.equals("用户名不能为空");
        //刷新
        driver.navigate().refresh();

        driver.findElement(By.cssSelector("#username")).sendKeys("admin111");
//        System.out.println("已经输入用户名");
        driver.findElement(By.cssSelector("#password")).sendKeys("123");
//        System.out.println("已经输入密码");
        driver.findElement(By.cssSelector("#submit")).click();
//        System.out.println("已经提交");

        //检查是否出现了“用户不存在”的警告弹窗
//        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(3));
//        System.out.println("开始等待弹窗出现");

//        wait.until(ExpectedConditions.alertIsPresent());
//        System.out.println("弹窗出现");
//
//        Alert alert = driver.switchTo().alert();

//        String text = alert.getText();
//        assertEquals(text, "用户不存在");
//        System.out.println("弹窗验证通过");
        //Press the OK button
        String res = driver.findElement(By.cssSelector("body > div.jq-toast-wrap.bottom-right > div > h2")).getText();

        Method method = new Object() {
        }.getClass().getEnclosingMethod();
        String methodName = method.getName();
        getScreenShot(getClass().getName(),methodName);

        assert res.equals("警告");
    }



}